লারাভেল CSRF Protection: বাংলায় বিস্তারিত গাইড

CSRF (Cross-Site Request Forgery) একটি সাধারণ নিরাপত্তা ঝুঁকি যেখানে একটি দূষিত সাইট ব্যবহারকারীর অনুমতি ছাড়া তাদের অ্যাকাউন্টে বিভিন্ন অনিচ্ছাকৃত কাজ করতে বাধ্য করে। লারাভেল এই ধরনের আক্রমণ প্রতিরোধের জন্য একটি বিল্ট-ইন সুরক্ষা ব্যবস্থা প্রদান করে, যা CSRF Protection নামে পরিচিত।


1. Introduction (পরিচিতি)

লারাভেল স্বয়ংক্রিয়ভাবে সমস্ত POST, PUT, PATCH, এবং DELETE HTTP রিকোয়েস্টের সাথে CSRF টোকেন যাচাই করে, যা নিশ্চিত করে যে রিকোয়েস্টটি আপনার অ্যাপ্লিকেশন থেকে এসেছে। GET রিকোয়েস্টের জন্য এটি প্রয়োজন হয় না, কারণ সেগুলি সাধারণত ডেটা পরিবর্তন করে না।


2. Preventing CSRF Requests (CSRF রিকোয়েস্ট প্রতিরোধ)

প্রতিটি HTML ফর্মে CSRF টোকেন যুক্ত করতে হবে, যা লারাভেল সহজেই প্রদান করে। আপনি @csrf ডিরেক্টিভ ব্যবহার করে এই টোকেনটি ফর্মে যোগ করতে পারেন।

উদাহরণ:

@csrf

এটি আপনার ফর্মে একটি গোপন ইনপুট ফিল্ড যোগ করবে, যেখানে CSRF টোকেনটি ইনক্লুড থাকবে। লারাভেল এই টোকেনের মাধ্যমে যাচাই করবে যে রিকোয়েস্টটি আপনার অ্যাপ্লিকেশন থেকে এসেছে।


3. Excluding URIs (URI গুলো বাদ দেওয়া)

আপনার অ্যাপ্লিকেশনের কিছু নির্দিষ্ট URI-তে CSRF টোকেন যাচাই করতে না চাইলে, সেই URI গুলোকে VerifyCsrfToken মিডলওয়্যারে বাদ দিতে পারেন। app/Http/Middleware/VerifyCsrfToken.php ফাইলে except প্রপার্টির মধ্যে এই URI গুলো উল্লেখ করতে হবে।

উদাহরণ:

protected $except = [
    'stripe/*',
    'http://example.com/payments/*',
];

এখানে stripe/* এবং payments/* URI গুলো CSRF যাচাই থেকে বাদ দেওয়া হয়েছে।


4. X-CSRF-Token (এক্স-সিএসআরএফ-টোকেন)

কিছু সময় আপনি JavaScript ব্যবহার করে AJAX রিকোয়েস্ট করতে পারেন। এর জন্য, লারাভেল আপনাকে CSRF টোকেন X-CSRF-Token হেডার হিসেবে পাঠানোর সুযোগ দেয়।

উদাহরণ:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

এখানে টোকেনটি meta ট্যাগ থেকে নিয়ে AJAX রিকোয়েস্টের সাথে হেডারে পাঠানো হয়েছে।


5. X-XSRF-Token (এক্স-এক্সএসআরএফ-টোকেন)

যদি আপনি XHR বা JavaScript ফ্রেমওয়ার্ক যেমন Vue বা Angular ব্যবহার করেন, তাহলে লারাভেল X-XSRF-Token কুকি ব্যবহার করে সুরক্ষা প্রদান করতে পারে। লারাভেল এই কুকিটি স্বয়ংক্রিয়ভাবে সঠিকভাবে সেট করে, এবং আপনি এই কুকিকে AJAX রিকোয়েস্টে হেডার হিসেবে ব্যবহার করতে পারেন।

উদাহরণ:

axios.defaults.headers.common['X-XSRF-TOKEN'] = getCookie('XSRF-TOKEN');

এখানে XSRF-TOKEN কুকি থেকে টোকেনটি পড়ে AJAX রিকোয়েস্টের সাথে পাঠানো হয়েছে।


উপসংহার

CSRF Protection লারাভেলে একটি অত্যন্ত গুরুত্বপূর্ণ সিকিউরিটি ফিচার, যা আপনার অ্যাপ্লিকেশনকে দূষিত রিকোয়েস্ট থেকে রক্ষা করে। আপনি খুব সহজেই ফর্মে @csrf ডিরেক্টিভ ব্যবহার করে বা AJAX রিকোয়েস্টে টোকেন পাঠিয়ে এই সুরক্ষা নিশ্চিত করতে পারেন। এছাড়া, নির্দিষ্ট URI গুলোতে প্রয়োজন না হলে CSRF যাচাই বাদ দেয়ারও সুবিধা আছে, যা অ্যাপ্লিকেশনকে আরও ফ্লেক্সিবল করে তোলে।

Content added By

আরও দেখুন...

Promotion